An Outline of Separation Logic

نویسندگان

  • Abhishek Kr Singh
  • Raja Natrajan
چکیده

Separation Logic is an effective Program Logic for proving programs that involve pointers. Reasoning with pointers becomes difficult especially when there is aliasing arising due to several pointers to a given cell location. In this paper, we try to explore the problems with aliasing through some simple examples and introduce the notion of separating conjunction as a tool to deal with it. We introduce Separation Logic as an extension of the standard Hoare Logic with the help pf a programming language that has four pointer manipulating commands. These commands perform the usual heap operations such as lookup, update, allocation and deallocation. The new set of assertions and axioms of Separation Logic is presented in a semi-formal style. Examples are given to illustrate the unique features of the new assertions and axioms. Finally the paper concludes with the proofs of some real programs using the axioms of Separation Logic.

منابع مشابه

A Separation, an Ideological Rift in the Iranian Society and Culture: Media, Discourse and Ideology

Media can be a good representation of dominant ideologies in society. The analysis of such discourse can shed light on the mental and social structures of people in society. Adopting van Dijk’s (1995) layout of discourse ideology and his (2000) practical and general outline of ideological analysis, this study analyzes the Iranian movie A Separation, the winner of the 84th An...

متن کامل

coreStar: The Core of jStar

Separation logic is a promising approach to program verification. However, currently there is no shared infrastructure for building verification tools. This increases the time to build and experiment with new ideas. In this paper, we outline coreStar, the verification framework underlying jStar. Our aim is to provide basic support for developing separation logic tools. This paper shows how a la...

متن کامل

Specifying Concurrent Programs: a Case Study in JML and Separation Logic

This paper presents a case study for the verification of concurrent programs. A model for a central printer server was designed, implemented and annotated with a formal specification in JML, extended with syntax for permissionbased separation logic. The specification is compatible with the VerCors toolset which is currently being developed at the University of Twente. The goal of this research ...

متن کامل

Ribbon Proofs for Separation Logic

A program proof should not merely certify that a program is correct; it should explain why it is correct. A proof should be more than ‘true’: it should be informative, and it should be intelligible. Extending work by Bean [1], we introduce a system that produces readable program proofs that are highly scalable and easily modified. The de facto standard for presenting program proofs in Hoare log...

متن کامل

Relational Decomposition

We introduce relational decomposition, a technique for formally reducing termination-insensitive relational program logics to unary logics, that is program logics for one-execution properties. Generalizing the approach of selfcomposition, we develop a notion of interpolants that decompose along the phrase structure, and relate these interpolants to unary and relational predicate transformers. I...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

متن کامل
عنوان ژورنال:
  • CoRR

دوره abs/1703.10994  شماره 

صفحات  -

تاریخ انتشار 2017